package com.hspedu.static_;

/**
 * 1.当需要某个类的所有对象都共享一个变量时，可以考虑使用类变量（静态变量）：
 *   比如 某中学的学生，他们的学校都是这个中学 Student(static school)
 * 2.类变量和实例变量的区别：类变量是所有对象共享的，实例变量是每个对象独享的
 * 3.加上static成为类变量或静态变量，否则成为实例变量/普通变量/非静态变量
 * 4.类变量可以通过 类名.类变量名 或 对象名.类变量名 来访问，但是推荐使用 类名.类变量名方式访问（要满足访问修饰符的访问权限和范围）
 * 5.实例变量不能通过类名.类变量名访问
 * 6.类变量是在类加载时就初始化了，即使没创建对象，只要类加载了就可以实用类变量了
 * 7.生命周期随着类的加载开始，类的销毁而销毁
 */
public class StaticDetail {
    public static void main(String[] args) {
        System.out.println(B.n2);
        B b = new B();
        System.out.println(B.n2);
//        System.out.println(C.class);//访问权限不对
    }
}
class B{
    public int n1 = 100;
    public static int n2 = 200;
}
class C{
    private static String address = "北京";
}